#pragma once
#include <stdio.h>
#include <cstdlib>
#include <assert.h>
#include <stdbool.h>
typedef int LTDataType;
typedef struct ListNode{
     struct ListNode* next;
     struct ListNode* prev;
     LTDataType data;
}ListNode;

ListNode * ListInit();
void ListDestory(ListNode* phead);
void Print(ListNode* phead);
void ListPushBack(ListNode* phead,LTDataType x);
void ListNodePushFront(ListNode* phead,LTDataType x);
void ListNodePopBack(ListNode* phead);
void ListNodePopFront(ListNode* phead);
ListNode * ListFind(ListNode* phead, LTDataType x);
void LisrInsert(ListNode* pos,LTDataType x);
void ListErase(ListNode* pos);
bool ListEmpty(ListNode* phead);
int ListNode (ListNode* phead);